package com.mongodb.mongodbboot.service;

import cn.hutool.core.date.DateBetween;
import com.mongodb.BasicDBObject;
import org.bson.Document;

import java.util.List;

/**
 * 分库分表查询接口
 * @author zbb
 * @date 2021-08-11 13:00
 */
public interface MongoQueryService {



    /**
     *  查询分库分表数据
     * @param basicParams   除分库分表外的查询条件 不包含开始时间和结束时间
     * @param tableName     查询的表名
     * @param dateBetween   分库分表字段和查询时间
     * @return
     */
    List<Document> query(BasicDBObject basicParams, String tableName, DateBetween dateBetween);


    List<Document> query(BasicDBObject basicParams, String tableName);


    /**
     *  查询分库分表过滤数据字段
     * @param basicParams   查询条件 不包含开始时间和结束时间
     * @param tableName     查询的表名
     * @param dateBetween   分库分表字段和查询时间
     * @param filterFields  过滤的字段
     * @return
     */
    List<Document> query(BasicDBObject basicParams, String tableName, DateBetween dateBetween, BasicDBObject filterFields);

    /**
     *  查询分库分表数据
     * @param basicParams   除分库分表外的查询条件 不包含开始时间和结束时间
     * @param tableName     查询的表名
     * @param dateBetween   分库分表字段和查询时间
     * @return
     */
    List<Document> queryNoise(BasicDBObject basicParams, String databaseName, String tableName, DateBetween dateBetween);

}
